﻿Imports System.Linq



Public Class Linq_Klant
    Public Function getKlantById(ByVal id As Integer) As KlantBean
        Dim SaktieDBDataContext1 = New SaktieDBDataContext()
        Dim klanten As New List(Of KlantBean)

        Dim KlantQuery = From Klant In SaktieDBDataContext1.Klants Where Klant.id = id
              Select Klant

        Dim objKlant
        For Each k In KlantQuery
            objKlant = New KlantBean()
            objKlant.Naam = k.klant_voornaam.Trim
            objKlant.Adres = k.klant_adres.Trim
            objKlant.TelefoonNummer = k.klant_telefoon.Trim
            objKlant.Postcode = k.klant_postcode.Trim
            objKlant.Opmerking = k.klant_opmerkingen.Trim
            objKlant.Woonplaats = k.klant_woonplaats.Trim
            objKlant.Achternaam = k.klant_achternaam.Trim
            objKlant.Id = k.id
            objKlant.Gebruikersnaam = k.klant_gebruikersnaam.Trim
            klanten.Add(objKlant)
        Next
        Return objKlant

    End Function

    Public Function getKlantByUserNaam(ByVal username As String) As KlantBean
        Dim SaktieDBDataContext1 = New SaktieDBDataContext()
        Dim klanten As New List(Of KlantBean)

        Dim KlantQuery = From Klant In SaktieDBDataContext1.Klants Where Klant.klant_gebruikersnaam = username
              Select Klant

        Dim objKlant
        For Each k In KlantQuery
            objKlant = New KlantBean()
            objKlant.Naam = k.klant_voornaam.Trim
            objKlant.Adres = k.klant_adres.Trim
            objKlant.TelefoonNummer = k.klant_telefoon.Trim
            objKlant.Postcode = k.klant_postcode.Trim
            objKlant.Opmerking = k.klant_opmerkingen.Trim
            objKlant.Woonplaats = k.klant_woonplaats.Trim
            objKlant.Achternaam = k.klant_achternaam.Trim
            objKlant.Gebruikersnaam = k.klant_gebruikersnaam.Trim
            objKlant.Id = k.id
            klanten.Add(objKlant)
        Next

        If klanten.Count = 0 Then
            Return objKlant
        Else
            Return objKlant
        End If
    End Function

    Public Function getAlleKlanten() As List(Of KlantBean)
        Dim SaktieDBDataContext1 = New SaktieDBDataContext()
        Dim klanten As New List(Of KlantBean)
        Dim KlantQuery = From Klant In SaktieDBDataContext1.Klants
              Select Klant

        For Each k In KlantQuery
            Dim objKlant = New KlantBean()
            objKlant = New KlantBean()
            objKlant.Naam = k.klant_voornaam.Trim
            objKlant.Adres = k.klant_adres.Trim
            objKlant.TelefoonNummer = k.klant_telefoon.Trim
            objKlant.Postcode = k.klant_postcode.Trim
            objKlant.Opmerking = k.klant_opmerkingen.Trim
            objKlant.Woonplaats = k.klant_woonplaats.Trim
            objKlant.Achternaam = k.klant_achternaam.Trim
            objKlant.Gebruikersnaam = k.klant_gebruikersnaam.Trim
            objKlant.Id = k.id
            klanten.Add(objKlant)
        Next
        Return klanten

    End Function

    Public Function checkUserName(ByVal uname As String) As Boolean
        Dim SaktieDBDataContext1 = New SaktieDBDataContext()
        Dim klanten As New List(Of KlantBean)
        Dim KlantQuery = From Klant In SaktieDBDataContext1.Klants
                         Where Klant.klant_gebruikersnaam = uname
                         Select Klant

        If KlantQuery.Count < 1 Then
            'Gebruiker bestaat niet
            Return False
        Else
            'Gebruiker bestaat al
            Return True
        End If

    End Function

    Public Function createKlant(ByVal k As KlantBean) As Boolean
        Dim dbc = New SaktieDBDataContext()

        Dim inserted As Boolean = False

        Dim myKlant As New Klant

        myKlant.klant_gebruikersnaam = k.Gebruikersnaam
        myKlant.klant_voornaam = k.Naam
        myKlant.klant_achternaam = k.Achternaam
        myKlant.klant_adres = k.Adres
        myKlant.klant_postcode = k.Postcode
        myKlant.klant_woonplaats = k.Woonplaats
        myKlant.klant_telefoon = k.TelefoonNummer
        myKlant.klant_opmerkingen = k.Opmerking

        dbc.Klants.InsertOnSubmit(myKlant)
        dbc.SubmitChanges()
        inserted = True

        Return inserted
    End Function

End Class
